package com.zte.statis.service.impl;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.zte.statis.dao.IStatisDao;
import com.zte.statis.pojo.*;
import com.zte.statis.service.IStatisService;
import com.zte.util.PageModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

/**
 * @author luode
 * @version 1.0
 * @date 2022/10/02 星期日 17:43
 */
@Service
public class StatisImpl implements IStatisService {
    @Autowired
    private IStatisDao statisDao;

    /**
     * 获取客户销量统计信息
     * @author zeng
     * @return
     */
    @Override
    public PageModel<CustomSale> getCustomSale(Condition conn, PageModel<CustomSale> pageModel) {
        pageModel.setPageNum(pageModel.getPageNum()<=0?1:pageModel.getPageNum());
        pageModel.setPageSize(pageModel.getPageSize()<=0?3:pageModel.getPageSize());

        PageHelper.startPage(pageModel.getPageNum(),pageModel.getPageSize());
        List<CustomSale> customSaleList = statisDao.getCustomSale(conn);
        PageInfo<CustomSale> pageInfo = new PageInfo<CustomSale>(customSaleList);

        pageModel.setData(customSaleList);
        pageModel.setTotalPage(pageInfo.getPages());
        pageModel.setTotalRows(pageInfo.getTotal());

        return pageModel;
    }

    /**
     * 获取客户订购详情信息
     * @author zeng
     * @return
     */
    @Override
    public PageModel<CustomSale> getSalesDetail(Condition conn, PageModel<CustomSale> pageModel) {
        pageModel.setPageNum(pageModel.getPageNum()<=0?1:pageModel.getPageNum());
        pageModel.setPageSize(pageModel.getPageSize()<=0?3:pageModel.getPageSize());

        PageHelper.startPage(pageModel.getPageNum(),pageModel.getPageSize());
        List<CustomSale> salesDetailList = statisDao.getSalesDetail(conn);
        PageInfo<CustomSale> pageInfo = new PageInfo<CustomSale>(salesDetailList);

        pageModel.setData(salesDetailList);
        pageModel.setTotalPage(pageInfo.getPages());
        pageModel.setTotalRows(pageInfo.getTotal());

        return pageModel;
    }

    /**
     * 获取厂商销售统计信息
     * @author zeng
     * @return
     */
    @Override
    public PageModel<PurchaseStatis> getPurchaseStatis(Condition conn,PageModel<PurchaseStatis> pageModel) {
        pageModel.setPageNum(pageModel.getPageNum()<=0?1:pageModel.getPageNum());
        pageModel.setPageSize(pageModel.getPageSize()<=0?3:pageModel.getPageSize());

        PageHelper.startPage(pageModel.getPageNum(),pageModel.getPageSize());
        List<PurchaseStatis> purchaseStatisList = statisDao.getPurchaseStatis(conn);
        PageInfo<PurchaseStatis> pageInfo = new PageInfo<PurchaseStatis>(purchaseStatisList);

        pageModel.setData(purchaseStatisList);
        pageModel.setTotalPage(pageInfo.getPages());
        pageModel.setTotalRows(pageInfo.getTotal());

        return pageModel;
    }

    /**
     * 获取厂商采购详情信息
     * 分页查询
     * @param conn
     * @param pageModel
     * @return
     */
    @Override
    public PageModel<PurchaseStatis> getPurchaseDetail(Condition conn, PageModel<PurchaseStatis> pageModel) {
        pageModel.setPageNum(pageModel.getPageNum()<=0?1:pageModel.getPageNum());
        pageModel.setPageSize(pageModel.getPageSize()<=0?3:pageModel.getPageSize());

        PageHelper.startPage(pageModel.getPageNum(),pageModel.getPageSize());
        List<PurchaseStatis> purchaseDetailList = statisDao.getPurchaseDetail(conn);
        PageInfo<PurchaseStatis> pageInfo = new PageInfo<PurchaseStatis>(purchaseDetailList);

        pageModel.setData(purchaseDetailList);
        pageModel.setTotalPage(pageInfo.getPages());
        pageModel.setTotalRows(pageInfo.getTotal());

        return pageModel;
    }

    /**
     * 获取仓库出库统计信息
     * @return
     */
    @Override
    public PageModel<DeliveryStatis> getDeliveryStatis(Condition conn,PageModel<DeliveryStatis> pageModel) {
        pageModel.setPageNum(pageModel.getPageNum()<=0?1:pageModel.getPageNum());
        pageModel.setPageSize(pageModel.getPageSize()<=0?3:pageModel.getPageSize());

        PageHelper.startPage(pageModel.getPageNum(),pageModel.getPageSize());
        List<DeliveryStatis> deliveryStatisList = statisDao.getDeliveryStatis(conn);
        PageInfo<DeliveryStatis> pageInfo = new PageInfo<DeliveryStatis>(deliveryStatisList);

        pageModel.setData(deliveryStatisList);
        pageModel.setTotalPage(pageInfo.getPages());
        pageModel.setTotalRows(pageInfo.getTotal());

        return pageModel;
    }

    /**
     * 获取出库详情信息
     * 分页查询
     * @param conn
     * @param pageModel
     * @return
     */
    @Override
    public PageModel<DeliveryStatis> getDeliveryDetail(Condition conn, PageModel<DeliveryStatis> pageModel) {
        pageModel.setPageNum(pageModel.getPageNum()<=0?1:pageModel.getPageNum());
        pageModel.setPageSize(pageModel.getPageSize()<=0?3:pageModel.getPageSize());

        PageHelper.startPage(pageModel.getPageNum(),pageModel.getPageSize());
        List<DeliveryStatis> deliveryDetailList = statisDao.getDeliveryDetail(conn);
        PageInfo<DeliveryStatis> pageInfo = new PageInfo<DeliveryStatis>(deliveryDetailList);

        pageModel.setData(deliveryDetailList);
        pageModel.setTotalPage(pageInfo.getPages());
        pageModel.setTotalRows(pageInfo.getTotal());

        return pageModel;
    }



    /**
     * 获取仓库入库统计信息
     * @return
     */
    @Override
    public PageModel<StockStatis> getStockStatis(Condition conn,PageModel<StockStatis> pageModel) {
        pageModel.setPageNum(pageModel.getPageNum()<=0?1:pageModel.getPageNum());
        pageModel.setPageSize(pageModel.getPageSize()<=0?3:pageModel.getPageSize());

        PageHelper.startPage(pageModel.getPageNum(),pageModel.getPageSize());
        List<StockStatis> stockStatisList = statisDao.getStockStatis(conn);
        PageInfo<StockStatis> pageInfo = new PageInfo<StockStatis>(stockStatisList);

        pageModel.setData(stockStatisList);
        pageModel.setTotalPage(pageInfo.getPages());
        pageModel.setTotalRows(pageInfo.getTotal());

        return pageModel;
    }

    /**
     * 获取入库详情信息
     * 分页查询
     * @param conn
     * @param pageModel
     * @return
     */
    @Override
    public PageModel<StockStatis> getStockDetail(Condition conn, PageModel<StockStatis> pageModel) {
        pageModel.setPageNum(pageModel.getPageNum()<=0?1:pageModel.getPageNum());
        pageModel.setPageSize(pageModel.getPageSize()<=0?3:pageModel.getPageSize());

        PageHelper.startPage(pageModel.getPageNum(),pageModel.getPageSize());
        List<StockStatis> stockDetailList = statisDao.getStockDetail(conn);
        PageInfo<StockStatis> pageInfo = new PageInfo<StockStatis>(stockDetailList);

        pageModel.setData(stockDetailList);
        pageModel.setTotalPage(pageInfo.getPages());
        pageModel.setTotalRows(pageInfo.getTotal());

        return pageModel;
    }
}
